#include <iostream>
#include <cmath>
using namespace std;
typedef long long ll;
const int N=1e6;
//gcd(a+c,b+c)==gcd(a+c,a-b);
ll mi=1e14;
ll a,b;
void check(ll y)
{
    if(y==1) return;
    if(a%y==0) mi=0;
    else mi=min(mi,y-a%y);
}
void solve()
{
    
    cin>>a>>b;
    if(a<b) swap(a,b);
    ll d=a-b;
    if(d==0)
    {
        if(a==1) cout<<1;
        else cout<<0;
        return;
    }
    if(d==1)
    {
        cout<<-1;
        return;
    }
    
    for(int i=1;i<=sqrt(d)+1;i++)
    {
        if(d%i==0)
        {
            check(i);
            check(d/i);
        }
    }
    cout<<mi;
}
int main()
{
    
    solve();
    
    return 0;
}
